#ifndef __CVlcDelegator_H__
#define __CVlcDelegator_H__

#include "IOutputStreamer.h"
#include "CVlcSocket.h"
/**
This class goes through the AUs lists and send the AUs  to a VLC player
*/
class CVlcDelegator: public  IOutputStreamer
{
public:
	/** 
	c'tor
	creates socket for sending audio and socket for sending video through VLC
	*/
	CVlcDelegator(std::string sIP, int nAudioPort, int nVideoPort);
	virtual ~CVlcDelegator(void);
	/**
	this function recieves AU lists and it send all the AUs in the lists to VLC player.
	@param cAUBuilder- the CAUBuilder class that holds AUs lists.
	*/
	virtual void outputAUs(IAUBuilder* cAUBuilder);

private:

	void _createSocket(unsigned int port, CVlcSocket& pSocket); //what is this func for??
	/**
	this function recieves AU list and sends all AUs in it to VLC player, via a specific socket
	*/
	void _sendAus(std::vector<CDynamicArray*>& aus, CVlcSocket& pSocket);

	CVlcSocket m_cAudioSocket;
	CVlcSocket m_cVideoSocket;
};

#endif //__CVlcDelegator_H__
